<HTML><HEAD><TITLE>The PERN Project - Day 1</TITLE><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><LINK rel=stylesheet href="tutorial.css" type="text/css"> </HEAD>
<BODY bgcolor="#FF9900" text="#000000" link="#0000FF">
<DIV align="center"> 
  <P align="center"><img src="../images/banner.jpg" width="586" height="100"></P>
  <P align="center">The Nintedo Reverse Engeneering Project</P>
</DIV>
<P align="left">Okay seems it is time I again contributed something to the community. 
  Over the next several days I would like to cover backgrounds, sprites, and a 
  few other game related topics in much greater detail than I went into in my 
  intro tutorials (day1-5). Now that you know the mechanics it is time to learn 
  the specifics. This will be a demo series meaning that I am going to create 
  a series of demos step by step that get increasingly more complex. Each demo 
  will include whatever level of explanation I feel necessary. This will basically 
  be the order of the series although that may change.</P>
<P align="left">&nbsp;</P>
<P align="left">So far all I have is the code to the first 20 or so demos. I will 
  be posting the tutor part of it over the next couple of days. Just check the 
  links as some will lead to tutors and some will just lead to the demo...and 
  some will lead to nothing at all.</P>
<p class="Heading1">I)<a href="MTG_MapEdit.html"> Getting yourself acquainted 
  with my crappy map editor</a></p>
<p class="TutorialComment">1) <a href="MTG_MapEdit.html">Drawing a single 256x256 
  mode 0 text background</a><br>
  2) <a href="../Examples/BG%20DEMOS/BG_2.zip">Drawing a single 256x512 mode 0 
  text background</a><br>
  3) <a href="../Examples/BG%20DEMOS/BG_3.zip">Drawing a single 512x256 mode 0 
  text background</a><br>
  4) <a href="../Examples/BG%20DEMOS/BG_4.zip">Drawing a single 512x512 mode 0 
  text background</a><br>
  5) <a href="../Examples/BG%20DEMOS/BG_5.zip">Drawing a single 128x128 mode 2 
  rotation background</a><br>
  6)<a href="../Examples/BG%20DEMOS/BG_6.zip"> Drawing a single 256x256 mode 2 
  rotation background</a><br>
  7) <a href="../Examples/BG%20DEMOS/BG_7.zip">Drawing a single 512x512 mode 2 
  rotation background</a> <br>
  8) <a href="../Examples/BG%20DEMOS/BG_8.zip">Drawing a single 1024x1024 mode 
  2 rotation background</a><br>
  9) Drawing text background using the 16 color palette (may be awhile as my map 
  editor does not support this at the moment)<br>
  10) <a href="../Examples/BG%20DEMOS/BG_10.zip">2 layer text background</a><br>
  11) <a href="../Examples/BG%20DEMOS/BG_11.zip">3 layer text background</a><br>
  12)<a href="../Examples/BG%20DEMOS/BG_12.zip"> 2 layer rotation background</a><br>
  13) <a href="../Examples/BG%20DEMOS/BG_13.zip">Mixing rotation and text backgrounds</a><br>
  14) <a href="../Examples/BG%20DEMOS/BG_14.zip">Using a background to render 
  text</a><br>
  15) <a href="../Examples/BG%20DEMOS/BG_15.zip">Making a rotation background 
  rotate</a><br>
  16) <a href="../Examples/BG%20DEMOS/BG_16.zip">Making 2 rotation backgrounds 
  rotate</a><br>
  17) Intro to scrolling backgrounds<br>
  18) <a href="../Examples/BG%20DEMOS/BG_18.zip">Scrolling maps bigger than the 
  hardware the easy way</a><br>
  19) <a href="../Examples/BG%20DEMOS/BG_19.zip">Scrolling vertically the not 
  so easy but better way</a><br>
  20) <a href="../Examples/BG%20DEMOS/BG_20.zip">Scrolling horizontally the not 
  so easy way</a><br>
  21) <a href="../Examples/BG%20DEMOS/BG_21.zip">Scrolling both ways the not so 
  easy way</a><br>
  22) Using tiles bigger than 8x8 <br>
  23) Breaking the 1024 tile barrier (advanced)<br>
</p>
<p>Now lets do the same thing for sprites. This one will cover all the many ways 
  that sprites can be blitted and animated on screen that I know how to do. </p>
<p class="Heading1">II) Get Yourself acquainted with the sprite animation tool</p>
<p class="TutorialComment"> 1) Drawing a single 32x32 256 color sprite.<br>
  2) Drawing 2 sprites <br>
  3) Drawing 128 sprites<br>
  4) Drawing different size sprites<br>
  5) Rotating a sprite<br>
  6) Rotating many sprites using same rotation data<br>
  7) Rotating many sprites using different rotation data<br>
  8) Zooming sprites<br>
  9) Drawing 16 color sprites<br>
  10) Animation of a single sprite the easy way<br>
  11) Animation of many sprites<br>
  12) Animation with a bit more flexibility<br>
  13) Meta sprite (this is a big one : ) And using boofly's invaluable objective 
  tool<br>
  14) Lets organize our memory into something a bit more useful<br>
  15) Creating an animation engine<br>
  16) Adding animated background tiles to our animation engine<br>
  17) Collisions between sprites and backgrounds using tile attributes<br>
  18) Collisions between sprites and backgrounds using bounding boxes<br>
  19) Collisions between sprites and other sprites<br>
  20) A bit of optimization for sprite to sprite collisions<br>
  21) Smoothing out our animation engine by adding a bit more control to the playback<br>
  22) Using sprites to display text?<br>
  23) Variable width fonts on Meta sprite overlays (Not for the weak of heart)<br>
  24) Breaking the 128 sprite barrier<br>
</p>
<p>Time to move on to some more interesting things that are necessary for games 
  to work.</p>
<p><span class="Heading1">I) Stuff I missed</span><br>
  <span class="TutorialComment">1) Saving data to the SRAM (pretty easy actually)<br>
  2) Multiplayer comms (soon as you all send me an extra gba I will get to work 
  on that : )<br>
  3) bios functions<br>
  4) A bit more on Alpha blending<br>
  5) Input techniques</span></p>
<p><span class="Heading1">II) AI</span><br>
  <span class="TutorialComment">1) The simple state machine</span></p>
<p><br>
  <span class="Heading1">III) Scripting</span><br>
  <span class="TutorialComment">1) may be a bit before I get to this one&#133;much 
  to learn first</span></p>
<p><br>
  <span class="Heading1">IIV) Adding a sound engine</span><br>
  <span class="TutorialComment">1) this will actually be one of the first things 
  I do in this section as it is not too hard (we are going to use a premade lib 
  for this)</span></p>
<p>&nbsp;</p>
<p>This is were we will try to bring this all together and make a simple 2D game. 
  I am thinking a bit on the lines of the originally metroid with a bit of RPG 
  (not too much) thrown in.</p>
<p><span class="Heading1">V) Making a simple adventure game</span><br>
  <span class="TutorialComment">1) The design doc. This is were we get the pelimanaries 
  layed out and set ourselves some goals...as well as sketch out our levels and 
  our characters. This is the hard part. If your design doc is not well done the 
  odds of ever finishing your game are reduced drastically.</span></p>
<p class="TutorialComment">2)Creating the background engine. This will combine 
  all that we have learned so far into a simple scroll engine that will hopefully 
  meet the needs of our soon to be game</p>
<p class="TutorialComment">3)Creating the sprite animation engine. mmm sprites</p>
<p class="TutorialComment">4)Adding the simple AI</p>
<p class="TutorialComment">5)Adding colision detection</p>
<p class="TutorialComment">6)Throw in just a touch of scripting</p>
<p class="TutorialComment">7)Slap on an intro and some credits and we are good 
  to go.</p>
<p><br>
</p>
<P align="center"><a href="http://www.qksrv.net/click-921536-5528029" target="_blank" >
<img src="http://www.qksrv.net/image-921536-5528029" width="468" height="60" alt="Gameboy Advance Flash Linker" border="0"></a></P>
<P align="center">&nbsp;</P>
</BODY></HTML> 
